package com.ushine.web.utils;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * @Author: yls
 * @Date 2022/4/11 13:16
 * @Description: 时分秒工具类
 * @Version 1.0
 **/
public class DateTimeUtils {

    public static final String FORMAT_TIME = "HH:mm:ss";

    public static final String FORMAT = "yyyy-MM-dd HH:mm:ss";

    /**
     * 功能描述:
     * 〈获取当前时间：年月日时分秒〉
     *
     * @return : java.lang.String
     * @author : yls
     * @date : 2022/4/14 10:04
     */
    public static String getNowTime() {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(FORMAT);
        return LocalDateTime.now().format(formatter);
    }

    /**
     * 功能描述:
     * 〈 获取时间:时分秒 〉
     *
     * @param
     * @return : java.time.LocalDateTime
     * @throws
     * @author : yls
     * @date : 2022/4/11 13:17
     */
    public static String getTime(LocalDateTime localDateTime) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(FORMAT_TIME);
        return localDateTime.format(formatter);
    }

    /**
     * 功能描述:
     * 〈 获取指定时分秒的时间 〉
     *
     * @param time 时间
     * @return : java.time.LocalDateTime
     * @author : yls
     * @date : 2022/4/11 13:24
     */
    public static LocalDateTime getLocalDateTime(String time) {
        return LocalDateTime.parse(time, DateTimeFormatter.ofPattern(FORMAT));
    }


    /**
     * 功能描述:
     * 〈 指定时间加上一段时间后的时间 〉
     *
     * @param time    开始时间
     * @param minutes 添加时间
     * @return : java.time.LocalDateTime
     * @author : yls
     * @date : 2022/4/11 13:29
     */
    public static String getLocalDateTime(String time, Integer minutes) {
        LocalDateTime localDateTime = getLocalDateTime(time).plusMinutes(minutes);
        return getTime(localDateTime);
    }

    /**
     * 功能描述:
     * 〈 指定时间加上一段时间后的时间 〉
     *
     * @param time    开始时间
     * @param seconds 添加时间
     * @return : java.time.LocalDateTime
     * @author : yls
     * @date : 2022/4/11 13:29
     */
    public static String getLocalDateTime(String time, Long seconds) {
        LocalDateTime localDateTime = getLocalDateTime(time).plusSeconds(seconds);
        return getTime(localDateTime);
    }

    /**
     * 功能描述:
     * 〈 获取年月日 时分秒数据 〉
     *
     * @param time 字符串时间
     * @param seconds 添加或减少的分钟数
     * @return : java.lang.String
     * @author : yls
     * @date : 2021/10/2 2:01
     */
    public static String getLocalDate(String time, Long seconds) {
        LocalDateTime localDateTime = getLocalDateTime(time).plusSeconds(seconds);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(FORMAT);
        return localDateTime.format(formatter);
    }


}
